package com.glsc.ngateway.oaflow.utils;

import org.hibernate.dialect.Oracle12cDialect;
import org.hibernate.tool.schema.extract.spi.SequenceInformationExtractor;


/**
 * 去获取数据库sequnce的最小值时，使用resultSet.getBigDecimal("min_value").longValue()的方式去获取，
 * 这样就可以避免出现数值超出Long范围导致报错的问题。当然，另一种不更改代码的解决方式就是修改数据库中的sequence定义，将sequence的值设置在Long的范围内。
 */
public class CustomOracleDialect extends Oracle12cDialect {
    @Override
    public SequenceInformationExtractor getSequenceInformationExtractor() {
        return CustomSequenceInformationExtractor.INSTANCE;
    }

    @Override
    public String getQuerySequencesString() {
        return "select * from user_sequences";
    }
}